package cn.iocoder.yudao.module.erp.controller.admin.stocksmoveitem.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - ERP 库存调拨项新增/修改 Request VO")
@Data
public class StocksMoveItemSaveReqVO {

    @Schema(description = "调拨项编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "9530")
    private Long id;

    @Schema(description = "调拨编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21293")
    @NotNull(message = "调拨编号不能为空")
    private Long moveId;

    @Schema(description = "产品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15902")
    @NotNull(message = "产品编号不能为空")
    private Long productId;

    @Schema(description = "产品单位", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "产品单位不能为空")
    private Long productUnit;

    @Schema(description = "产品规格", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "产品规格不能为空")
    private Long productStandards;

    @Schema(description = "产品单价", requiredMode = Schema.RequiredMode.REQUIRED, example = "11591")
    @NotNull(message = "产品单价不能为空")
    private BigDecimal productPrice;

    @Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "批次不能为空")
    private String productBatch;

    @Schema(description = "有效期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "有效期不能为空")
    private LocalDateTime productValidityDate;

    @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "7439")
    @NotNull(message = "数量不能为空")
    private BigDecimal count;

    @Schema(description = "备注", example = "你说的对")
    private String remark;

}